#ifndef __KOOPA_H_
#define __KOOPA_H_

#include "Object.h"

#define KOOPA_VX	0.1
#define GRAVITY		0.01

 
/************************************************************************/
/*	Koopa                                                                      */	
/************************************************************************/

class Koopa : public Object
{
private:
	bool check_turn;

	/*float _vx;
	float _vy;
	float _accelY;*/

	float _xOld;
	float _yOld;

	float timeStop;

	//Sprite* _spriteShell;

	//RECT rectShell;
	RECT rectOld;

	bool isGravity;
public:
	list<Object*> *collisionObjectList;

	/*
	 *	get/set properties
	 */
	OBJECT_TYPE getObjectType();

	/*
	 *	constructor/destructor
	 */
	//Koopa(float x, float y);
	Koopa(LPDIRECT3DDEVICE9 d3ddv,  LPDIRECT3DSURFACE9 BackBuffer, LPD3DXSPRITE SpriteHandler, float x, float y, int ID, int Object_State, int Direction);
	~Koopa();

	void Render();

	void TurnLeft();
	void TurnRight();

	void ResetRect();
	void ResetRectNULL();
	
	void Update(list<Object*>* staObjs, list<Object*>* dynObjs, DxInput* input, float TPF);
	void Move(list<Object*>* staObjs, float TPF);

	void move(list<Object*>* obj_list, float TPF);
	void update(list<Object*>* obj_list, DxInput* input, float TPF);
	void render(int cameraX, int cameraY);
	void changeState(int state);
};

#endif